/**
 * @description 工具集
 * @author c-jw
 * @time 2020年3月31日 15:05:49
 */

import axios from "axios";
window.axios = axios;
axios.defaults.baseURL = "api";
axios.defaults.timeout = 0; //超时(0为永不超时)
// axios.defaults.headers.common['Content-Type'] = 'application/json';
// axios.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded';
// axios.defaults.headers.common['Content-Type'] = 'application/from-data';
// axios.defaults.withCredentials = true; //允许带上cookie
// axios.defaults.transformRequest = function (data, headers) {
//   // console.log(data, headers);
//   //   headers.common['Cookie'] = 'd=9';
//   return data;
// };
// axios.interceptors.response.use(function (response) {
//   // 对响应数据做点什么
//   console.log('[ajax 拦截相应]', response);
//   return response;
// }, function (error) {
//   // 对响应错误做点什么
//   return Promise.reject(error);
// });

export const ajax = function(option) {
  let ajax = axios(option)
    .then((res) => res.data)
    .catch((error = {}) => {
      console.warn("[ajax 请求异常]:", option, error);
      let message = "接口请求异常";
      let status = (error.response || {}).status;
      switch (status) {
        case 400:
          message = "接口请求参数异常";
          break;
        case 401:
          message = "接口权限不足";
          break;
        case 403:
          message = "接口请求被服务器拒绝";
          break;
        case 404:
          message = "接口地址不存在";
          break;
        case 500:
          message = "接口服务器异常";
          break;
        default:
          message = error.message || "接口请求异常";
      }
      return {
        code: 1,
        message,
        error
      };
    });
  return ajax;
};

export default ajax;
